Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[experimental] Implement one-helper, "ping-pong" aggregation. #1234

Closed
wants to merge 10 commits into from

Conversation

branlwyd
Copy link
Contributor

@branlwyd branlwyd commented Apr 10, 2023

This is an experimental change following ietf-wg-ppm/draft-ietf-ppm-dap#393.

Other than specifying to one helper & implementing ping-ponging, there are a few related changes as well:

  • I enabled the use of Poplar1 to test aggregation-continuation behavior. Neither Prio3 nor the dummy VDAF would work for this, as they do not have enough rounds to trigger continuation. (In retrospect, it may have been wiser to extend the dummy VDAF to allow the number of rounds to be controlled.)

This required a few other changes that may be notable:
 * I enabled the use of Poplar1 to test aggregation-continuation
   behavior. Neither Prio3 nor the dummy VDAF would work for this, as
   they do not have enough rounds to trigger continuation. (In
   retrospect, it may have been wiser to extend the dummy VDAF to allow
   the number of rounds to be controlled.)
 * I refactored the replay logic to store the last responses directly,
   and build current-round responses directly from the same data that
   would be used to handle replay. Replay state is now attached to the
   report aggregation, rather than the report aggregation state.
@branlwyd branlwyd marked this pull request as ready for review April 10, 2023 22:30
@branlwyd branlwyd requested a review from a team as a code owner April 10, 2023 22:30
This came out of a code-editing error when refactoring this section of
code.
It's necessary to reference an unreleased version of libprio-rs until
divviup/libprio-rs@54a4623
is released. I need to change the reference since that PR has now been
merged, and the underlying branch deleted.
@tgeoghegan
Copy link
Contributor

I think it'd help reviewers to rebase this on #1253.

@branlwyd
Copy link
Contributor Author

I think it'd help reviewers to rebase this on #1253.

Done.

Copy link
Contributor

@tgeoghegan tgeoghegan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a sound implementation of ietf-wg-ppm/draft-ietf-ppm-dap#393 to me.

@@ -867,26 +869,6 @@ mod tests {
)
.await;

// should reject a report with only one share with the unrecognizedMessage type.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, cool, I hadn't thought about how this change removes the category of errors where vectors of objects are the wrong length!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup -- that's one of the nice things about switching to leader/helper-specific fields. This is another advantage of specifying to exactly one helper.

@tgeoghegan
Copy link
Contributor

Assigning to myself: I'll rebase this and sync it up with what got published in DAP-05.

tgeoghegan pushed a commit that referenced this pull request Aug 16, 2023
tgeoghegan pushed a commit that referenced this pull request Aug 26, 2023
@tgeoghegan tgeoghegan mentioned this pull request Sep 1, 2023
@tgeoghegan
Copy link
Contributor

Ping pong was landed in #1811, closing this PR.

@tgeoghegan tgeoghegan closed this Sep 25, 2023
@branlwyd branlwyd deleted the bran/one-helper branch November 2, 2023 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants